﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DXApplicationTangche.UC.金蝶.dto
{
    class SupplyDTO
    {
        public class FGroup
        {
            /// <summary>
            /// 
            /// </summary>
            public string FNumber { get; set; }
        }

        public class FForbiderId
        {
            /// <summary>
            /// 
            /// </summary>
            public string FUserID { get; set; }
        }

        public class FCountry
        {
            /// <summary>
            /// 
            /// </summary>
            public string FNumber { get; set; }
        }

        public class FProvincial
        {
            /// <summary>
            /// 
            /// </summary>
            public string FNumber { get; set; }
        }

        public class FLanguage
        {
            /// <summary>
            /// 
            /// </summary>
            public string FNumber { get; set; }
        }

        public class FTrade
        {
            /// <summary>
            /// 
            /// </summary>
            public string FNumber { get; set; }
        }

        public class FDeptId
        {
            /// <summary>
            /// 
            /// </summary>
            public string FNumber { get; set; }
        }

        public class FStaffId
        {
            /// <summary>
            /// 
            /// </summary>
            public string FNumber { get; set; }
        }

        public class FSupplierClassify
        {
            /// <summary>
            /// 
            /// </summary>
            public string FNumber { get; set; }
        }

        public class FSupplierGrade
        {
            /// <summary>
            /// 
            /// </summary>
            public string FNumber { get; set; }
        }

        public class FCompanyClassify
        {
            /// <summary>
            /// 
            /// </summary>
            public string FNumber { get; set; }
        }

        public class FCompanyNature
        {
            /// <summary>
            /// 
            /// </summary>
            public string FNumber { get; set; }
        }

        public class FCompanyScale
        {
            /// <summary>
            /// 
            /// </summary>
            public string FNumber { get; set; }
        }

        public class FBaseInfo
        {
            /// <summary>
            /// 
            /// </summary>
            public int FEntryId { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public FCountry FCountry { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public FProvincial FProvincial { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public string FAddress { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public string FZip { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public FLanguage FLanguage { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public string FWebSite { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public FTrade FTrade { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public string FFoundDate { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public string FLegalPerson { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public int FRegisterFund { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public string FRegisterCode { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public string FSOCIALCRECODE { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public string FTendPermit { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public string FRegisterAddress { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public FDeptId FDeptId { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public FStaffId FStaffId { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public FSupplierClassify FSupplierClassify { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public string FSupplyClassify { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public FSupplierGrade FSupplierGrade { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public FCompanyClassify FCompanyClassify { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public FCompanyNature FCompanyNature { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public FCompanyScale FCompanyScale { get; set; }
        }

        public class FFreezeOperator
        {
            /// <summary>
            /// 
            /// </summary>
            public string FUserID { get; set; }
        }

        public class FPurchaserGroupId
        {
            /// <summary>
            /// 
            /// </summary>
            public string FNumber { get; set; }
        }

        public class FParentSupplierId
        {
            /// <summary>
            /// 
            /// </summary>
            public string FNumber { get; set; }
        }

        public class FSettleTypeId
        {
            /// <summary>
            /// 
            /// </summary>
            public string FNumber { get; set; }
        }

        public class FPRICELISTID
        {
            /// <summary>
            /// 
            /// </summary>
            public string FNumber { get; set; }
        }

        public class FDiscountListId
        {
            /// <summary>
            /// 
            /// </summary>
            public string FNumber { get; set; }
        }

        public class FProviderId
        {
            /// <summary>
            /// 
            /// </summary>
            public string FNumber { get; set; }
        }

        public class FWipStockId
        {
            /// <summary>
            /// 
            /// </summary>
            public string FNumber { get; set; }
        }

        public class FWipStockPlaceId
        {
        }

        public class FVmiStockId
        {
            /// <summary>
            /// 
            /// </summary>
            public string FNUMBER { get; set; }
        }

        public class FBusinessInfo
        {
            /// <summary>
            /// 
            /// </summary>
            public int FEntryId { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public FFreezeOperator FFreezeOperator { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public string FFreezeDate { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public FPurchaserGroupId FPurchaserGroupId { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public FParentSupplierId FParentSupplierId { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public FSettleTypeId FSettleTypeId { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public FPRICELISTID FPRICELISTID { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public FDiscountListId FDiscountListId { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public FProviderId FProviderId { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public FWipStockId FWipStockId { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public string FVmiBusiness { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public FWipStockPlaceId FWipStockPlaceId { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public FVmiStockId FVmiStockId { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public string FEnableSL { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public int FDepositRatio { get; set; }
        }

        public class FCustomerId
        {
            /// <summary>
            /// 
            /// </summary>
            public string FNumber { get; set; }
        }

        public class FPayCurrencyId
        {
            /// <summary>
            /// 
            /// </summary>
            public string FNumber { get; set; }
        }

        public class FPayCondition
        {
            /// <summary>
            /// 
            /// </summary>
            public string FNumber { get; set; }
        }

        public class FSettleId
        {
            /// <summary>
            /// 
            /// </summary>
            public string FNumber { get; set; }
        }

        public class FTaxType
        {
            /// <summary>
            /// 
            /// </summary>
            public string FNumber { get; set; }
        }

        public class FChargeId
        {
            /// <summary>
            /// 
            /// </summary>
            public string FNumber { get; set; }
        }

        public class FTaxRateId
        {
            /// <summary>
            /// 
            /// </summary>
            public string FNUMBER { get; set; }
        }

        public class FFinanceInfo
        {
            /// <summary>
            /// 
            /// </summary>
            public int FEntryId { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public FCustomerId FCustomerId { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public FPayCurrencyId FPayCurrencyId { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public FPayCondition FPayCondition { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public FSettleId FSettleId { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public int FPayAdvanceAmount { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public FTaxType FTaxType { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public string FTaxRegisterCode { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public FChargeId FChargeId { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public string FInvoiceType { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public FTaxRateId FTaxRateId { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public string FFinanceDesc { get; set; }

            public FFinanceInfo(string FNumber)
            {
                this.FPayCurrencyId = new FPayCurrencyId();
                this.FPayCurrencyId.FNumber = FNumber;
            }
        }

        public class FBankCountry
        {
            /// <summary>
            /// 
            /// </summary>
            public string FNumber { get; set; }
        }

        public class FBankTypeRec
        {
            /// <summary>
            /// 
            /// </summary>
            public string FNUMBER { get; set; }
        }

        public class FBankDetail
        {
            /// <summary>
            /// 
            /// </summary>
            public string FNUMBER { get; set; }
        }

        public class FBankCurrencyId
        {
            /// <summary>
            /// 
            /// </summary>
            public string FNumber { get; set; }
        }

        public class FBankInfoItem
        {
            /// <summary>
            /// 
            /// </summary>
            public int FBankId { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public FBankCountry FBankCountry { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public string FBankCode { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public string FBankHolder { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public FBankTypeRec FBankTypeRec { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public string FTextBankDetail { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public FBankDetail FBankDetail { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public string FOpenAddressRec { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public string FOpenBankName { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public string FCNAPS { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public string FSwiftCode { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public FBankCurrencyId FBankCurrencyId { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public string FBankIsDefault { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public string FBankDesc { get; set; }
        }

        public class FLocNewContact
        {
            /// <summary>
            /// 
            /// </summary>
            public string FNUMBER { get; set; }
        }

        public class FLocationInfoItem
        {
            /// <summary>
            /// 
            /// </summary>
            public int FLocationId { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public string FLocName { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public FLocNewContact FLocNewContact { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public string FLocAddress { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public string FLocMobile { get; set; }
        }

        public class FSupplierContactItem
        {
            /// <summary>
            /// 
            /// </summary>
            public int FContactId { get; set; }
        }

        public class Model
        {
            /// <summary>
            /// 
            /// </summary>
            public int FSupplierId { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public string FNumber { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public string FName { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public string FShortName { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public FGroup FGroup { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public string FDescription { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public FForbiderId FForbiderId { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public string FForbidDate { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public FBaseInfo FBaseInfo { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public FBusinessInfo FBusinessInfo { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public FFinanceInfo FFinanceInfo { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public List<FBankInfoItem> FBankInfo { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public List<FLocationInfoItem> FLocationInfo { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public List<FSupplierContactItem> FSupplierContact { get; set; }

            public Model(string FName)
            {
                this.FName = FName;
                this.FFinanceInfo = new FFinanceInfo("PRE001");
            }
        }

        public class FBillHead
        {
            /// <summary>
            /// 
            /// </summary>
            public List<string> NeedUpDateFields { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public List<string> NeedReturnFields { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public string IsDeleteEntry { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public string SubSystemId { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public string IsVerifyBaseDataField { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public string IsEntryBatchFill { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public string ValidateFlag { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public string NumberSearch { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public string IsAutoAdjustField { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public string InterationFlags { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public string IgnoreInterationFlag { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public Model Model { get; set; }

            public FBillHead(String FName)
            {
                this.Model = new Model(FName);
            }
        }
    }
    class SupplierVerifyDTO
    {
        public List<String> Numbers { get; set; }
        public String Ids { get; set; }
        public String InterationFlags { get; set; }

        public bool NetworkCtrl { get; set; }
        public bool IsVerifyProcInst { get; set; }
        public bool IgnoreInterationFlag { get; set; }


        public SupplierVerifyDTO(String FNumber, String id)
        {
            this.Numbers = new List<string>();
            this.Numbers.Add(FNumber);
            this.Ids = id;
        }
    }

    class SupplierSubmitDTO
    {
        public List<String> Numbers { get; set; }
        public String Ids { get; set; }

        public int SelectedPostId { get; set; }

        public bool NetworkCtrl { get; set; }
        public bool IgnoreInterationFlag { get; set; }


        public SupplierSubmitDTO(String FNumber, String id)
        {
            this.Numbers = new List<string>();
            this.Numbers.Add(FNumber);
            this.Ids = id;
        }
    }
    class ResultDTO
    {
        public class SuccessEntitysItem
        {
            /// <summary>
            /// 
            /// </summary>
            public int Id { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public string Number { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public int DIndex { get; set; }
        }

        public class ResponseStatus
        {
            /// <summary>
            /// 
            /// </summary>
            public string IsSuccess { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public List<string> Errors { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public List<SuccessEntitysItem> SuccessEntitys { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public List<string> SuccessMessages { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public int MsgCode { get; set; }
        }

        public class NeedReturnDataItem
        {
        }

        public class Result
        {
            /// <summary>
            /// 
            /// </summary>
            public ResponseStatus ResponseStatus { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public int Id { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public string Number { get; set; }
            /// <summary>
            /// 
            /// </summary>
            public List<NeedReturnDataItem> NeedReturnData { get; set; }
        }

        public class ResultRoot
        {
            /// <summary>
            /// 
            /// </summary>
            public Result Result { get; set; }
        }

    }
}
